<?php
/**
 * Created by PhpStorm.
 * @description:
 * @time:
 * @Author: yfl
 * @QQ 554665488
 * Date: 2018-5-25
 * Time: 20:05
 */
/**
 * 创建TCP服务器
 * 当客户端Socket通过网络发送数据的时候服务器回复数据
 * swoole_server是一个异步的服务器，所以是通过监听事件的方式来编写程序。当对应的事件发生时的时候底层会主动回调制定的php函数
 *服务器可以同时被成千上万的客户端链接  $fd就是客户端链接的唯一标识符
 * $server->send() 向客户端发送数据
 * $server->close() 方法强制关闭某一个客户端的链接。
 * 客户端可能会主动断开了链接，此时会触发onClose事件回调
 */
//创建Server 对象，监听 127.0.0.1:9501 端口
$service = new swoole_server('0.0.0.0', 9501);
//监听连接回调的事件
$service->on('connect', function ($service, $fd) {
    echo "Client:Connect.\n".$fd;
});
//监听数据
$service->on('receive', function ($service, $fd, $from_id, $data) {
    sleep(5);
    $service->send($fd,"==$fd=".$from_id. 'Service' . $data);
});
//监听链接关闭事件
$service->on('close', function ($service, $fd) {
    echo "Client:close.\n";
});
//启动服务器
$service->start();
